1. 配置 devcontainer.json

Vscode生成版本魔改

// For format details, see https://aka.ms/devcontainer.json. For config options, see the
// README at: https://github.com/devcontainers/templates/tree/main/src/java
{
    "name": "Jame",
    // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile
    "image": "mcr.microsoft.com/devcontainers/java:1-21-bullseye",
    "features": {
        "ghcr.io/devcontainers/features/java:1": {
            "version": "21",
            "installMaven": "true",
            "installGradle": "false"
        },
        "ghcr.io/itsmechlark/features/redis-server:1": {}
    },
    // Use 'forwardPorts' to make a list of ports inside the container available locally.
    "forwardPorts": [
        8080,
        6379
    ],
    // Use 'postCreateCommand' to run commands after the container is created.
    // "postCreateCommand": [
    //     "java -version",
    //     "mvn clean install",
    //     "echo 'Redis, MySQL, and Java environment are ready!'"
    // ],
    // Configure tool-specific properties.
    // 配置工具特定属性
    "customizations": {
        "vscode": {
            "extensions": [
                "vscjava.vscode-java-pack", // Java 扩展包
                "redhat.vscode-redis" // Redis 扩展
            ]
        }
    },
    // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root.
    // "remoteUser": "root",
    // 配置环境变量(用于 MySQL 连接)
    "containerEnv": {
        "MYSQL_HOST": "192.168.8.251",
        "MYSQL_PORT": "3306",
        "MYSQL_DATABASE": "jame",
        "MYSQL_USER": "jame",
        "MYSQL_PASSWORD": "jame"
    }
}

OpenJdk 手搓

  1. 在你的项目根目录下创建一个 .devcontainer 文件夹。
  2. 在 .devcontainer 文件夹中创建 Dockerfile 和 devcontainer.json 文件。
# 使用官方的 Java 21 镜像,系统为fedora,不想使用rpm的或是想使用debian切换21-jdk-bookworm
FROM openjdk:21-jdk
# 安装 Maven
RUN apt-get update && apt-get install -y maven
# 设置工作目录
WORKDIR /workspace
# 复制项目文件
COPY . .
# 运行指令
RUN mvn clean install
{
  "name": "jame",
  "context": ".",
  "dockerFile": "Dockerfile",
  // "appPort": ["18080:8080"],
  "customizations": {
    "vscode": {
      "extensions": [
        "vscjava.vscode-java-pack",
        "redhat.vscode-yaml",
        "redhat.vscode-redis"
      ],
      "settings": {
        "terminal.integrated.shell.linux": "/bin/bash"
      }
    }
  },
  // "runArgs": ["--init", "docker-entrypoint.sh"],
  // "runArgs": ["--name jame-backend"],
  "forwardPorts": [8080],
  // "postCreateCommand": "mvn clean install",
  "containerEnv": {
    "DATASOURCE_URL": "jdbc:mysql://192.168.8.251:3306/jame",
    "DATASOURCE_USERNAME": "jame",
    "DATASOURCE_PASSWORD": "jame",
    "REDIS_HOST": "192.168.8.252:6379"
  }
}

2. 生成项目文件

2.1 Spring Boot项目

直接拉取spring-boot-starter文件

curl https://start.spring.io/starter.zip -o java-project.zip
unzip java-project.zip -d java-project
cd java-project

或者安装插件Spring Boot Extension Pack,打开控制台选择Spring Initializr,根据指示设置项目,也可打开资源管理器新建。